package com.example.yunbiji0314.util;

import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class JwtTest {

    public static void main(String[] args) {
        // 生成一个JWT的字符串
        String jwt="";
        /**
         * 第一个参数是 加密的算法  第二个参数是密钥
         *
         * signWith(SignatureAlgorithm.HS256,"hxzy")
         * setIssuedAt()  设置签发时间
         * setExpiration() 过期时间
         */

        // 日历
        Calendar calendar = Calendar.getInstance();
        Date time = calendar.getTime();// 当前时间
        calendar.add(Calendar.HOUR,24);// 日历往后加30分钟
        Date guoqi=  calendar.getTime(); // 30分钟之后的时间
        JwtBuilder xx = Jwts.builder().setExpiration(guoqi).setIssuedAt(time).signWith(SignatureAlgorithm.HS256,"hxzy");
        Map mm = new HashMap();
        mm.put("username", "admin");
        mm.put("age",18 );
        xx.addClaims(mm);// jwt第二个部分中有一个私有信息

        // 通过JwtBuilder对象的compact这个方法来生成JWT字符串
        jwt =xx.compact();
        System.out.println(jwt);
    }
}
